"""经典的GUI格式测试,使用面向对象的思想"""
from tkinter import *
from tkinter import messagebox

class Application(Frame):
    """经典的GUI类的写法"""

    def __init__(self, master=None):
        """初始化application组件"""
        super().__init__(master)  # 调用Frame的构造器
        self.master = master  # 把传递进来的tk设置给自己
        self.pack()  # 设置布局管理器
        self.createWidget()

    def createWidget(self):
        """创建组件"""
        self.btn01 = Button(self)  # self继承了Frame自己就是一个组件，传递进去即可
        self.btn01["text"] = "点击我送花"
        self.btn01.pack()
        self.btn01["command"] = self.songhua

        # 创建退出组件 text是退出 command是销毁 类似于上面的btn["text]
        self.btnQuite = Button(self, text="退出", command=root.destroy)
        self.btnQuite.pack()  # 设置布局管理器

    def songhua(self):
        messagebox.showinfo("送花", "送你99朵玫瑰花")

if __name__ == '__main__':
    root = Tk()
    root.geometry("400x100+200+300")
    root.title("一个经典的GUI程序类的测试")
    app = Application(master=root)
    root.mainloop()